package br.gov.sedurb.ws.client;


import br.gov.se.seplag.RequestFixo;
import br.gov.se.seplag.ebo.v1.Servico;
import br.gov.se.seplag.ebo.v1.UnidadeAtendimento;
import br.gov.se.seplag.servicoatendimento.ErroInfoMessage;
import br.gov.se.seplag.servicoatendimento.ParametroListarServicosAtendimento;
import br.gov.se.seplag.servicoatendimento.ResultadoListarServicosAtendimento;
import br.gov.se.seplag.servicoatendimento.ServicoAtendimento;
import br.gov.se.seplag.servicoatendimento.ServicoAtendimento_Service;

import br.gov.sedurb.util.JSFUtils;

import java.util.ArrayList;
import java.util.List;

import javax.xml.ws.WebServiceRef;


// !THE CHANGES MADE TO THIS FILE WILL BE DESTROYED IF REGENERATED!
// This source file is generated by Oracle tools
// Contents may be subject to change
// For reporting problems, use the following
// Version = Oracle WebServices (11.1.1.0.0, build 130224.1947.04102)

public class ServicoAtendimentoSOAPClient extends WSClient<ServicoAtendimento> {
    @WebServiceRef
    private ServicoAtendimento_Service servicoAtendimento_Service;
    private static ServicoAtendimentoSOAPClient obj;
    
    private ServicoAtendimentoSOAPClient() {
        super();
    }

    public static ServicoAtendimentoSOAPClient getInstance() {
        if (obj == null) {
            obj = new ServicoAtendimentoSOAPClient();
        }

        return obj;
    }

    public List<Servico> listarServicoAtendimento(UnidadeAtendimento unidadeAtendimento) {

        ParametroListarServicosAtendimento parameters =
            new ParametroListarServicosAtendimento();
        parameters.setPaginacao(RequestFixo.paginacao());
        parameters.setUnidade(unidadeAtendimento);

        List<Servico> listaServico = new ArrayList<Servico>();
        try {
            ResultadoListarServicosAtendimento lista =
                    getPort().listarServicoAtendimento(parameters, RequestFixo.cabecalho());
            
            listaServico = lista.getListaServicos().getServico();

        } catch (ErroInfoMessage e) {
            JSFUtils.addFacesErrorMessage("Erro ao tentar utilizar o serviço " + this.getClass().getSimpleName() + ":" + e.getMessage());
        } catch (Exception e) {
            JSFUtils.addFacesErrorMessage(erroGenerico(e));
        }
        return listaServico;
    }


    public ServicoAtendimento criarPortType() {

        servicoAtendimento_Service = new ServicoAtendimento_Service();
        ServicoAtendimento port =
            servicoAtendimento_Service.getServicoAtendimentoSOAP();

        return port;

    }
}
